# 数据容器入门——一种存储多个元素的python数据类型
# python 中的数据容器——list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)

# 列表的常用功能
# 列表 list 的定义用法
# 基本语法：
# 字面量——[元素1，元素2，元素3，...]
# 定义变量 = [元素1，元素2，元素3，...]
# 定义空列表：列表名称 = []       变量名称 = list()
name_list = ['wang','zhou','li','zhao','sun']
print(name_list)
print(type(name_list))

my_list = ['wang',666,True]
print(my_list)
print(type(my_list))

nest_list = [name_list,my_list]
print(nest_list)
print(type(nest_list))

# 列表的下标索引——正向从0开始，反向从-1开始，注意不能超出索引范围
# 正向索引
print(name_list[0])
print(name_list[1])
print(name_list[2])
print(name_list[3])
print(name_list[4])
# 反向索引
print(name_list[-1])
print(name_list[-2])
print(name_list[-3])
print(name_list[-4])
print(name_list[-5])
# 嵌套列表下标索引
print(nest_list[0][1])
print(nest_list[1][1])

# 列表的常用操作
# 查询下标索引—— index
index = name_list.index("sun")
print(f"sun在name_list中的下标索引指为{index}")
# 查询元素不存在时会报错
# index = name_list.index("hello")
# print(f"hello在name_list中的下标索引指为{index}")

# 修改下索引的值
print(my_list)
my_list[1] = 10086
print(my_list)
my_list[2] = 10000
print(my_list)

# 列表中插入元素—— insert
print(my_list)
my_list.insert(1,True)
print(my_list)

# 在列表后追加一个元素—— append
my_list.append('add')
print(my_list)

# 列表中追加一批元素——extend
print(my_list)
add_list = [1,2,3,4]
my_list.extend(add_list)
print(my_list)

# 删除元素
# del 列表[下标]
del my_list[1]
print(my_list)
# 列表.pop(下标)—— 有返回值,即取出的元素
element = my_list.pop(3)
print(my_list)
print(element)

# 删除某个元素在列表中的第一个匹配项
# 语法：列表.remove(元素)
my_list.insert(4,10000)
print(my_list)
my_list.remove(10000)
print(my_list)

# 清空列表内容——语法：列表.clear()
test_list = [1,2,3]
print(test_list)
test_list.clear()
print(test_list)

# 统计列表中某元素的数量——语法：列表.count(元素)
add_list = [1,5,1,2,4,66,8,41,2]
my_list.extend(add_list)
print(my_list)
count = my_list.count(1)
print(count)

# 统计列表中，一共有多少元素—— 函数 len
print(my_list)
count = len(my_list)
print(count)

# 列表的遍历——while 和 for
# while 循环遍历
index = 0
while index < len(my_list):
    print(my_list[index])
    index += 1

# for 循环遍历
print(name_list)
for i in name_list:
    print(i)





